     # that it is capable of doing the routing functionality code.
     # If something is wrong, this method will throw an exception.
     # The method is idempotent, ergo no duplication of routables.
-    register: (routable) ->
+    register: (routable, callback) ->
         identify = routable?.constructor?.identify()
         inspected = identify.toString().underline
         [matches, process] = [routable.matches, routable.process]

            @emit "unregister", @routable, @kernel
            logger.info removing.yellow, inspected
            @registry.splice index, 1
        unregister @kernel, this; @

    # The method implements a middleware (for Connect) that looks

            logger.info attaching.blue, inspected
            @emit "register", routable, @kernel
            (@registry ?= []).unshift routable
            return callback routable
        register @kernel, this; @

    # Unregister the supplied service instance from the kernel router.
