   removeRoute: ->
     return unless @server and @verb and @path
     routes = @server.routes[@verb]
-    for route in routes
-      if route.path == @path
-        route.slice()
+    for route, i in routes
+      if route.path == @path and route.method == @verb
+        routes.slice(i, -1)
 
   shutdown: ->
     @removeRoute()

  constructor: ->
    @inPorts =
      server: new noflo.Port 'number'
      verb: new noflo.Port 'string'
      path: new noflo.Port 'string'
    @outPorts =
      request: new noflo.Port 'object'

      @removeRoute()
      @path = path
      @createRoute()
    @inPorts.method.on 'data', (verb) =>
      @removeRoute()
      @verb = verb
      @createRoute()
