The great thing about AppEngine is that you can test and use almost all features during development locally. However there's one really important thing missing for everybody that is using modules - as suggested by the official documentation: accessing all your modules via the same port, where requests are routed according to your configuration in dispatch.xml. This feature is not available locally: "All dispatch files are ignored when running the development server. The only way to target instances is through their ports."
In order to achieve this, we're using some grunt-plugins:
Now call "grunt dispatch" and your server is ready to go at localhost:9000. All requests with a URL matching "/api" (e.g. "localhost:9000/api/hello") are routed to localhost:8081 and all the rest goes to localhost:8080. As you can see this does not read your actual configuration from dispatch.xml, but it's really easy to set up anyway (same logic applies, just JSON instead of XML).
The same applies to Python users with dispatch.yaml of course...