anchor.diff:        }
         if (content == null)
           continue;
  -      Transition transition = new Transition(content: content)
  +      String key = historyEntry.route.key;
  +      Transition transition = new Transition(content: content, key: key)
           ..direction = (i <= state.historyIndex) ? TransitionDirection.forward : TransitionDirection.reverse
           ..interactive = (i == state.historyIndex)
           ..onDismissed = () {
  
positive.code: const Point _kTransitionStartPoint = const Point(0.0, 100.0);
  enum TransitionDirection { forward, reverse }
  class Transition extends AnimatedComponent {
    Transition({ this.content, this.direction, this.onDismissed, this.interactive });
    Widget content;
    TransitionDirection direction;
    bool interactive;
  
negative.code:   Widget build() {
      List<Widget> visibleRoutes = new List<Widget>();
      for (int i = 0; i < state.history.length; i++) {
        // TODO(jackson): Avoid building routes that are not visible
        HistoryEntry historyEntry = state.history[i];
        Widget content = historyEntry.route.build(this, historyEntry.route);
        if (i == 0) {
  