 
   doDefer: (expression, dependencyName) ->
     definition = @_deferrableDefinition()
-    definition._defer =
-      (@_deferReasonOf definition) or [expression, dependencyName, @currentScopeIndex()]
+    definition._defers.push [expression, dependencyName, @currentScopeIndex()]
 
   deferReason: ->
     @_deferReasonOf @_deferrableDefinition()

      definedNames: []
      usedNames: []
      deferrable: yes
      _defer: undefined

  bareDefine: ->
    @definePattern()

    !!(@_deferReasonOf @_deferrableDefinition())

  _deferReasonOf: (definition) ->
    definition?._defers[0]

  addDeferredDefinition: ([expression, dependencyName, useScopeIndex, lhs, rhs]) ->
    @_scope().deferred.push [expression, dependencyName, useScopeIndex, lhs, rhs]
