Extract Routing functionality from Dispatcher into new Router