public void connect(Direction direction, Direction otherTileDirection, Tile otherTile){
		if (hasDirection(direction) && otherTile.hasDirection(otherTileDirection)){
			throw new IllegalArgumentException("Trying to connect two existing edges");
		}
		
		if (hasDirection(direction)){
			Edge connector = getEdge(direction);
			otherTile.setEdge(otherTileDirection, connector);
			connector.connect(otherTile);
		}
		else if (otherTile.hasDirection(otherTileDirection)){
			Edge connector = otherTile.getEdge(otherTileDirection);
			this.setEdge(direction, connector);
			connector.connect(this);
		}
		else {
			new Edge(this, otherTile, true, direction, otherTileDirection);
		}	
	}