     XCTAssert(self.navigator.viewController(for: "http://google.com/search/?q=URLNavigator") is WebViewController)
   }
 
+  func testViewControllerForURL_mappingContext() {
+    self.navigator.map("myapp://user/<int:id>", UserViewController.self, context: "TestContext")
+    let viewController = self.navigator.viewController(for: "myapp://user/1") as! UserViewController
+    XCTAssertEqual(viewController.mappingContext as? String, "TestContext")
+  }
+
   func testPushURL_URLNavigable() {
     self.navigator.map("myapp://user/<int:id>", UserViewController.self)
     let navigationController = UINavigationController(rootViewController: UIViewController())

    super.init(nibName: nil, bundle: nil)
  }

  convenience required init?(url: URLConvertible, values: [String: Any], userInfo: [AnyHashable: Any]?) {
    guard let query = url.queryParameters["query"] else {
      return nil
    }
    self.init(query: query)


  var url: URLConvertible?

  convenience required init?(navigation: Navigation) {
    self.init()
    self.url = navigation.url
  }

}
