         actions[method] = action
     }
 
-    static var defaultFallback: Action {
-        return Action(
-            responder: Responder { _ in Response(status: .MethodNotAllowed) }
-        )
-    }
-}
+    static let defaultFallback = Action { _ in
+        Response(status: .MethodNotAllowed)
+    }
+}

        }
        return nil
    }

    private func createRoute(path path: String, method: Method, action: Action) {
        let route = Route(
            path: path,
            actions: [method: action]
        )
        routes.append(route)
    }

    private func createRoute(path path: String, fallback: Action) {
        let route = Route(
            path: path,
            fallback: fallback
        )
        routes.append(route)
    }
}

public final class Route: RouteType {
    public let path: String
    public var actions: [Method: Action]
    public var fallback: Action

    init(path: String, actions: [Method: Action] = [:], fallback: Action = Route.defaultFallback) {
        self.path = path

    let path: String
    var routes: [RouteType] = []

    var fallbackAction = Action { _ in
        Response(status: .NotFound)
    }

    init(path: String = "") {
        self.path = path
