improve the routing mechanism by augmenting the routing error type with ...

...some information and a sound monoid instance. this addresses #10
i'm going to fix this in a subsequent commit