Sure, I put the simple demo code up on code.msdn.com with a brief description of how it works: http://code.msdn.microsoft.com/Contract-First-Authoring-f519ddf1
To answer your questions: yes, workflow services are most typically stateful services. In .NET 4, we introduced the concept of content-based correlation with workflow services, which allows you to choose a particular piece of data in your input messages to determine which instance the host should load. In this example, I used both the 'gameMoniker' parameter (for the JoinGame messages) and the players' names (for the subsequent messages).
Hope that helps,