private void expandRoute(Queue<MultiConnectionRoute> queue, String startNode, String endNode, MultiConnectionRoute route)
	{
		List<Connection> expandedConnections = graph.collectConnectionsOriginatingFrom(startNode);
		for (Connection currentConnection : expandedConnections)
		{
			MultiConnectionRoute newRoute = new MultiConnectionRoute(route);
			newRoute.addConnection(currentConnection);
			queue.add(newRoute);
		}
		while (!queue.isEmpty())
		{
			MultiConnectionRoute currentRoute = queue.remove();
			if (routeCollector.withinLimit(currentRoute))
			{
				String currentEndNode = currentRoute.getEndNode();
				if (currentEndNode == endNode)
				{
					routeCollector.addCandidate(currentRoute);
				}
				
				expandRoute(queue, currentEndNode, endNode, currentRoute);
			}
		}
	}