     }
 }
 
-extension Router {
-    public func splitPathIntoComponents(_ path: String) -> [String] {
-        return path.split(separator: "/")
-    }
-
-    public func mergePathComponents(_ components: [String]) -> String {
-        return "/" + components.joined(separator: "/")
-    }
-}
-
+// TODO: Move this into the RouteMatcher protocol
+//extension Router {
+//    public func splitPathIntoComponents(_ path: String) -> [String] {
+//        return path.split(separator: "/")
+//    }
+//
+//    public func mergePathComponents(_ components: [String]) -> String {
+//        return "/" + components.joined(separator: "/")
+//    }
+//}

}

extension RouterBuilder {
    public func compose(_ path: String = "", middleware: Middleware..., router: Router) {
        let prefix = self.path + path
        let prefixPathComponentsCount = router.splitPathIntoComponents(prefix).count

        for route in router.routes {
            for (method, _) in route.actions {

        }
    }

    public func compose(_ router: HTTP.Router) {
        compose(router: router)
    }
}
