     @param url The URL being detected (i.e. "users/16")
     */
     
-    func routeParams(for url: String, extraParams: RoutableParams? = nil) -> RouteParams? {
+    open func routeParams(for url: String, extraParams: RoutableParams? = nil) -> RouteParams? {
     
         if let cachedRoute = self.cachedRoutes[url], extraParams == nil { //TODO: should we just tack on the extra params and return if cached at all?
             return cachedRoute

    @param controllerClass The `UIViewController` `Class` which will be instanstiated when the URL is triggered in `open:`
    @param options Configuration for the route, such as modal settings
    */
    func map(format: String, controllerClass: Routable, options: RouteOptions? = nil) {
        var options: RouteOptions = options ?? RouteOptions()
        options.openClass = controllerClass
        self.routes[format] = options

        return nil
    }
    
    open func params(for urlComponents: [String], routeUrlComponents: [String]) -> RoutableParams? {
        var params = RoutableParams()
        for (idx, routeComponent) in routeUrlComponents.enumerated() {
            let givenComponent = urlComponents[idx]
