I would like to write an HTTP server that answer to request using a non-standard HTTP method (verb). For instance, the client would make a request like `FOO / HTTP/.1.1`. And on the server side, this request would be handled by something like:

```
var express = require('express');

var app = express.createServer();

app.configure(function(){
  app.use(express.logger({ format: ':method :url' }));
  app.use(express.methodOverride());
});

app.foo('/', function(req, res){
    res.send('Hello World');
});

app.listen(3000);

```

I appended my non-standard method to the array exported in ExpressJS's `lib/router/methods.js`. This allow me to write my server code as expected. When using `express.methodOverride()` and a `POST` request with `_method=foo`, it works. But an actual `FOO` request doesn't work. As soon as the client send the first line of the request the connection is closed by the server:

```
$telnet localhost 3000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
FOO / HTTP/1.1
Connection closed by foreign host.

```

I would like to be able to implement this with ExpressJS and without avoid hacking into its core file.

Any idea if this is possible and how?