Refactoring router.go to handle errors. Improving code coverage.

Refactoring router.go to handle errors. Improving code coverage.
I don't feel strongly one way or another on this but should we return `ok, error` rather than `Routes, error`?  Returning `ok, error` would explicitly indicate success of a delete rather than returning all the routes.  On the other hand, returning routes isn't so bad because error is `nil`.