anchor.diff:      this.parent = parent;
     }
     Future<dynamic> navigateByUrl(String url,
  -      [bool _skipLocationChange = false]) {
  +      [bool _skipLocationChange = false, bool _replaceState = false]) {
       // Delegate navigation to the root router
  -    return this.parent.navigateByUrl(url, _skipLocationChange);
  +    return this.parent.navigateByUrl(url, _skipLocationChange, _replaceState);
     }
   
     Future<dynamic> navigateByInstruction(Instruction instruction,
  -      [bool _skipLocationChange = false]) {
  +      [bool _skipLocationChange = false, bool _replaceState = false]) {
       // Delegate navigation to the root router
  -    return this.parent.navigateByInstruction(instruction, _skipLocationChange);
  +    return this
  +        .parent
  +        .navigateByInstruction(instruction, _skipLocationChange, _replaceState);
     }
   }
   
  
positive.code:    * complete.
     */
    Future<dynamic> navigateByInstruction(Instruction instruction,
        [bool _skipLocationChange = false]) {
      if (instruction == null) {
        return _resolveToFalse;
      }
      return this._currentNavigation = this._currentNavigation.then((_) {
        this._startNavigating();
        return this._afterPromiseFinishNavigating(
            this._navigate(instruction, _skipLocationChange));
      });
    }
  
  
negative.code:    * Updates this router and all descendant routers according to the given instruction
     */
    Future<dynamic> commit(Instruction instruction,
        [bool _skipLocationChange = false, bool _replaceState = false]) {
      this.currentInstruction = instruction;
      Future<dynamic> next = _resolveToTrue;
      if (_outlet != null && instruction.component != null) {
  