anchor.diff:    }
   
   /**
  - * Navigates the browser to the selected route with given [data]. A [View] is selected and [Data] passed.
  - * When [View] changes [Data] then [PageNavigator] calls history.replaceState with a new url.
  - * From the other side when [PageNavigator.navigate] is called to an actual [View]
  - *   the [Data] is updated and therefore [Vew] sould listen to [Data] changes.
  - * Parameter [name] of the route to be navigated to.
  - * Parameter [data] route parameter values.
  - * Flag [pushState] if the new url (state) should be pushed to browser history.
  - * Throws [StateError] when trying to navigate to a null [View].
  - * Throws [ArgumentError] when no such route exists.
  + * Navigates the browser to the selected route with given [data].
  + * Then a [View] is selected and [Data] passed via updates are communicated.
  + * So when [View] changes [Data] then [PageNavigator] changes [History] url.
  + * Vice versa when client navigates to active route only [Data] is updated
  + * and [View.load] and [View.unload] is not called. Therefore [View] should
  + * listen to [Data] changes.
  + *
  + * Use flag [pushState] to push the new urlt to browser history.
    */
     void navigate(String name, Map data, {bool pushState}){
       if(this._views[name] == null){
  
positive.code:       throw new FormatException("Url pattern has to begin with '/' character.");
      }
  
      final RegExp exp = new RegExp(r"^(?:([\w-]*)|{([a-zA-Z][\w]*)})$");
      var matcherParts = new List();
      var parts = pattern.split('/');
      for (var part in parts) {
        var match = exp.firstMatch(part);
        if (match == null) {
          throw new FormatException(
              "Only alphanumeric characters, dash '-' and underscore '_'"
              " are allowed in the URL."
              );
        }
        if (match.group(1) != null) {
          var group = match.group(1);
  
negative.code:   String get activePath => this._router.routePath(this._activeRouteName, this._activeParameters);
  
  /**
   * Creates new [PageNavigator].
   */
    PageNavigator(this._router, this._history){
      if(this._router == null){
  