private List<Room> path(Room start, Room destination) {
		Queue<Room> frontier = new LinkedList<Room>();
		frontier.add(start);

		Map<Room, Room> visited = new HashMap<Room, Room>();
		visited.put(start, null);

		while(!frontier.isEmpty()) {
			Room current = frontier.poll();

			if(current == destination) {
				List<Room> path = new ArrayList<Room>();
				
				Room next = destination;
				while(next != null) {
					path.add(0, next);
					next = visited.get(next);
				}

				return path;
			}

			for(Room next : current.adjacent) {
				if(!visited.containsKey(next)) {
					frontier.add(next);
					visited.put(next, current);
				}
			}
		}

		return null;
	}