 
   var postTitle: String?
 
-  convenience required init?(url: URLConvertible, values: [String: Any], userInfo: [AnyHashable: Any]?) {
-    guard let title = values["title"] as? String else {
+  convenience required init?(navigation: Navigation) {
+    guard let title = navigation.values["title"] as? String else {
       return nil
     }
     self.init()

    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)

    XCTAssertEqual(navigationController.viewControllers.count, 2)
  }

  func testPushURL_context() {
    self.navigator.map("myapp://user/<int:id>", UserViewController.self)
    let navigationController = UINavigationController(rootViewController: UIViewController())
    let passedValue = "abcde"
    let passedObject = NSObject()
    let context: [AnyHashable: Any] = ["info": passedValue, "object": passedObject]
    let viewController = self.navigator.push("myapp://user/1", context: context, from: navigationController, animated: false) as! UserViewController
    XCTAssertNotNil(viewController)
    XCTAssertEqual(navigationController.viewControllers.count, 2)
    XCTAssertNotNil(viewController.navigationContext)
    let getedValue = viewController.navigationContext as! [String: Any]
    XCTAssertEqual(getedValue["info"] as! String, passedValue)
    XCTAssertEqual(getedValue["object"] as! NSObject, passedObject)
  }
