Routing algorithm