         self.serviceCache = .init()
         self.extend = Extend()
         self.eventLoop = try DefaultEventLoop(label: "codes.vapor.application")
+        self.router = try self.make(Router.self, for: Application.self)
 
         if #available(OSX 10.12, *) {
             Thread.detachNewThread {


    /// Use this to create stored properties in extensions.
    public var extend: Extend

    /// Creates a new Application.
    public init(

        exit(0)
    }
}

extension Application: Router {
    /// All routes registered to this router
    public var routes: [Route<Responder>] {
        return router.routes
    }
    
    /// Routes a new Request to get a responder that can make a Response
    public func route(request: Request) -> Responder? {
        return router.route(request: request)
    }
    
    /// Registers a new route. This should only be done during boot
    public func register(route: Route<Responder>) {
        router.register(route: route)
    }
}
