@Override
	//SimpleEntry: NextHop, Distance
	public SimpleEntry<Byte, Byte> getRoute(Byte destination)
			throws RouteNotFoundException {
		lock.lock();
		// TODO Respond whenever a route is requested.
		if(destination == this.deviceID) {
			lock.unlock();
			return new SimpleEntry<Byte,Byte>((byte)1,(byte)0);
		} else if(!networkTreeMap.containsKey(destination)) {
			lock.unlock();
			System.out.println("Looked for host " + destination);
			throw new RouteNotFoundException("Destination unknown.");
		} else if(networkTreeMap.get(destination).isEmpty()
				|| networkTreeMap.get(deviceID).isEmpty()) {
			lock.unlock();
			System.out.println("Looked for host " + destination);
			throw new RouteNotFoundException("Destination unreachable; no route to host.");
		}
		
		Byte nextHop = nextHops.get(destination);
		Byte routeLen = routeLengths.get(destination);
		if(nextHop == -1 || routeLen == -1) {
			if(autoUpdate) {
				update();
			}
			lock.unlock();
			throw new RouteNotFoundException("Destination unreachable; no route to host.");
		}
		
		lock.unlock();
		return new SimpleEntry<Byte,Byte>(nextHop,routeLen);
	}