[refactor] add a RouteCollcetion class to hold a prioritised list of routes; renamed getWeight() to getPriority()