Handle 0-length paths and routes

Right now passing "" as a route or path causes task failure because of the check for `route.char_at(0)`. This causes "" to behave like "/", a sane default, instead.