public Tile cross(Tile currentTile, Character crosser){
		if (crosser == null || currentTile == null){
			throw new IllegalArgumentException("currentTile and crosser cannot be null");
		}
		if (!crosser.equals(currentTile.getCharacter())){
			throw new IllegalArgumentException("The given character must be on the given tile");
		}
		if (!canCross(crosser)){
			throw new IllegalArgumentException("The given character is not capable of crossing this edge");
		}
		
		Tile destination = getOtherTile(currentTile);
		currentTile.removeCharacter();
		destination.addCharacter(crosser);
		return destination;
	}