When registering modules I've found that the ModuleDefinitionInterface methods are only called on each module class once the route has already been matched. This makes sense as you dont want to register the services and autoloaders for every module. However, this makes it difficult to define module specific routes within the module definition class because the route must be matched before the module is loaded. I get around this by extending the module definition interface to include a ModuleDefinitionInterface::registerRoutes($router) function which I then call for each module before registering. It would be nice if the Application::registerModules() function could do this by default so that module classes could encapsulate all module specific info. Thoughts?