anchor.diff:  
     // While this flight's hero was in transition a push or a pop occurred for
     // routes with the same hero. Redirect the in-flight hero to the new toRoute.
  -  void restart(_HeroFlightManifest newManifest) {
  +  void divert(_HeroFlightManifest newManifest) {
       assert(manifest.tag == newManifest.tag);
   
       if (manifest.type == _HeroFlightType.push && newManifest.type == _HeroFlightType.pop) {
  
positive.code:       if (manifest.fromHero != newManifest.toHero) {
          manifest.fromHero.endFlight();
          newManifest.toHero.startFlight();
          heroRect = new RectTween(
            begin: heroRect.end,
            end: _globalRect(newManifest.toHero.context),
          );
        } else {
          heroRect = new RectTween(
            begin: heroRect.end,
            end: heroRect.begin,
          );
        }
      } else {
        // A push or a pop flight is heading to a new route, i.e.
  
negative.code:           toHero: toHeroes[tag],
            createRectTween: createRectTween,
          );
          if (_flights[tag] != null)
            _flights[tag].divert(manifest);
          else
            _flights[tag] = new _HeroFlight(_handleFlightEnded)..start(manifest);
        } else if (_flights[tag] != null) {
  