     _.flatten( components )
 
 
+container.register()
+
 # This is the method by which a container injects the rendered child views
 # into the DOM.  It will get passed the container object, and the component
 # that is being rendered.

  container = @

  childrenWithGetter = _( @allChildren() ).select (component)->
    component.getter?

  _( childrenWithGetter ).each (component)->
    container[ component.getter ] ||= ()->
      component

createMethodsToGetComponentsByRole = ()->
  container = @

  childrenWithRole = _( @allChildren() ).select (component)->
    component.role?

  _( childrenWithRole ).each (component)->
    getter = _.str.camelize( "get_" + component.role )


  allChildren: ()->
    children = @components

    grandchildren = _( @subContainers() ).map (component)->
      component?.allChildren?()

    _([children,grandchildren]).chain().compact().flatten().value()

  findComponentForEventBinding: (nameRoleOrGetter, deep=true)->
