         if name.hasOwnProperty('__super__')
           try
             child = new name({'isAutoStart':false})
+            console.log "hi"
             @_bindChild(rule, child)
             return @
           catch e

    @callback = callback
    @router = router
    @update(rule)
    # @rule = string
    # @_regexp = @_ruleToRegExp(string)
    # @types = []

    # re = new RegExp(namedParam)
    # matched = string.match(re)
    # if matched isnt null
    #   @isVariable = true
    #   for m in matched
    #     t = m.match(genericParam)||null
    #     @types.push if t isnt null then t[1] else null

  #マッチするかどうかテスト
  # **args**

    return @

  _bindChild:(rule, child)->
    childHandlers = child.handlers.concat()
    for childRule in childHandlers
      childRule.update(rule)
    #うーん
    # @._groups.push new InternalGroup(rule, child.handlers)
    @.handlers = childHandlers.concat @.handlers

    childBefores = child.beforeHandlers.concat()
    for childBefore in childBefores
      childBefore.update(rule)
    @.beforeHandlers = childBefores.concat @.beforeHandlers


  #ルールを後から追加する
