from my experience, change the name of your main file to Index.hx (and the name of the class to Index), compile to index.n
then enter in the folder where the neko is, and just use
nekotools server -rewrite
and it will be served in the port 2000. I don't know about the -d option, but this is simpler to use.
About the Dispatch.run, use only one pointing to the root controler, because Request.getURI() will get the path you requested and will choose the right function in the controler. with the path hardcoded like this
Dispatch.run("/user", null, new Controller());
Dispatch.run("/default", null, new Controller());
you will not be able to go to different pages, it will always call the function for the 'user' page. the page will be sent to the browser, and the second command will not be called.
from the root controler you can have a function that will sub dispatch to another path in your website. eg. if you have a api in
www.webpage.com/api, in the root controler you can use
public function doApi(d:Dispatch)
{
d.dispatch(new controllers.Api());
}
this way you can use another controller just for the api functions.