anchor.diff:    componentDidUpdate : (prev_props, prev_page) -> 
       @applyStyles _route_changed
   
  -  applyStyles : (animate = true) -> 
  +  applyStyles : (animate) -> 
       duration = if animate then TRANSITION_SPEED else 0
       root = @data('root')        
       $el = $(@getDOMNode())
   
  +
  +    # Each Component that implements this mixin can get triggered multiple times after a route change. 
  +    # So we're going to ensure that we apply styles only once for a given route change. 
  +    return if @transitioning == root.page_name
  +    @transitioning = root.page_name
   
       switch @name
   
  
positive.code: # PageTransition mixin
  # Helper for components that implement a page transition animation.
  # Applies styles defined in the component that change
  # depending on state. Right now this mixin assumes that
  # animations will be applied only on route changes. 
  #
  # A component that implements this mixin should define a method:
  #     applyStyles : (animate = true)
  # which puts the styles on the desired elements. 
  PageTransition = 
  
    componentDidMount : -> @applyStyles false
  
negative.code:           , duration  
        else
          throw "The #{@name} component does not define any styles to animate"
  
      _.delay => 
        @transitioning = null
      , duration
  
  
  ## ##################
  