anchor.diff:     * Updates this router and all descendant routers according to the given instruction
      */
     Future<dynamic> commit(Instruction instruction,
  -      [bool _skipLocationChange = false]) {
  +      [bool _skipLocationChange = false, bool _replaceState = false]) {
       this.currentInstruction = instruction;
       Future<dynamic> next = _resolveToTrue;
       if (_outlet != null && instruction.component != null) {
  
positive.code:     this.navigateByUrl(location.path());
    }
    Future<dynamic> commit(Instruction instruction,
        [bool _skipLocationChange = false]) {
      var emitPath = instruction.path;
      var emitQuery = instruction.toUrlQuery();
      if (emitPath.length == 0 || emitPath[0] != "/") {
  
negative.code:     var promise = super.commit(instruction);
      if (!_skipLocationChange) {
        promise = promise.then((_) {
          if (_replaceState) {
            this._location.replaceState(emitPath, emitQuery);
          } else {
            this._location.go(emitPath, emitQuery);
          }
        });
      }
      return promise;
  