 
     // MARK: Utils
 
+    /// Returns an scheme-appended `URLConvertible` if given `URL` doesn't have its scheme.
+    static func URLWithScheme(scheme: String?, _ URL: URLConvertible) -> URLConvertible {
+        let URLString = URL.URLStringValue
+        if let scheme = scheme where !URLString.containsString("://") {
+            #if DEBUG
+                if !URLPatternString.hasPrefix("/") {
+                    NSLog("[Warning] URL pattern doesn't have leading slash(/): '\(URL)'")
+                }
+            #endif
+            return scheme + ":/" + URLString
+        } else if scheme == nil && !URLString.containsString("://") {
+            assertionFailure("Either navigator or URL should have scheme: '\(URL)'") // assert only in debug build
+        }
+        return URLString
+    }
+
     /// Returns the URL by
     ///
     /// - Removing redundant trailing slash(/) on scheme

    /// - Parameter URL: The dirty URL to be normalized.
    ///
    /// - Returns: The normalized URL. Returns `nil` if the pecified URL is invalid.
    static func normalizedURL(dirtyURL: URLConvertible) -> URLConvertible {
        guard dirtyURL.URLValue != nil else {
            return dirtyURL
        }
        var URLString = dirtyURL.URLStringValue.componentsSeparatedByString("?")[0].componentsSeparatedByString("#")[0]
        URLString = self.replaceRegex(":/{3,}", "://", URLString)
        URLString = self.replaceRegex("(?<!:)/{2,}", "/", URLString)
        URLString = self.replaceRegex("/+$", "", URLString)


    /// Map an `URLNavigable` to an URL pattern.
    public func map(URLPattern: URLConvertible, _ navigable: URLNavigable.Type) {
        let URLString = URLNavigator.normalizedURL(URLPattern, scheme: self.scheme).URLStringValue
        self.URLMap[URLString] = navigable
    }

    /// Map an `URLOpenHandler` to an URL pattern.
    public func map(URLPattern: URLConvertible, _ handler: URLOpenHandler) {
        let URLString = URLNavigator.normalizedURL(URLPattern, scheme: self.scheme).URLStringValue
        self.URLOpenHandlers[URLString] = handler
    }

