introduce shv_do_route()