An apparatus comprising at least one processor and at least one memory including computer program code, the at least one memory and computer program code configured to, with the processor, cause the apparatus to at least: receive an indication of an origin and a plurality of waypoints, including a plurality of intermediate waypoints, wherein at least some of the plurality of waypoints do not have a predefined routing order; dynamically calculate a route and an order in which the waypoints are reached by a user by performing, for the origin and for each intermediate waypoint, the following: initiating a generation of competing routes emanating from the origin or from the respective intermediate waypoint and traveling through the plurality of waypoints; limiting the generation of competing routes to a subset of the plurality of waypoints, wherein the subset excludes all waypoints requiring a route, from the origin or from the respective intermediate waypoint to the excluded waypoint, above a predefined routing cost; and selecting a route from the origin or from the respective intermediate waypoint to a waypoint of the respective subset of the plurality of waypoints; provide route guidance for the user along the selected route; and perform the route calculation periodically and/or upon reaching each intermediate waypoint as the user is traveling among the plurality of waypoints, wherein a waypoint is eliminated from the generation of competing routes in response to the user reaching the respective waypoint. receive an indication of an origin and a plurality of waypoints, including a plurality of intermediate waypoints, wherein at least some of the plurality of waypoints do not have a predefined routing order; dynamically calculate a route and an order in which the waypoints are reached by a user by performing, for the origin and for each intermediate waypoint, the following: initiating a generation of competing routes emanating from the origin or from the respective intermediate waypoint and traveling through the plurality of waypoints; limiting the generation of competing routes to a subset of the plurality of waypoints, wherein the subset excludes all waypoints requiring a route, from the origin or from the respective intermediate waypoint to the excluded waypoint, above a predefined routing cost; and selecting a route from the origin or from the respective intermediate waypoint to a waypoint of the respective subset of the plurality of waypoints; initiating a generation of competing routes emanating from the origin or from the respective intermediate waypoint and traveling through the plurality of waypoints; limiting the generation of competing routes to a subset of the plurality of waypoints, wherein the subset excludes all waypoints requiring a route, from the origin or from the respective intermediate waypoint to the excluded waypoint, above a predefined routing cost; and selecting a route from the origin or from the respective intermediate waypoint to a waypoint of the respective subset of the plurality of waypoints; provide route guidance for the user along the selected route; and perform the route calculation periodically and/or upon reaching each intermediate waypoint as the user is traveling among the plurality of waypoints, wherein a waypoint is eliminated from the generation of competing routes in response to the user reaching the respective waypoint. <EOS>