public void moveSecretPassage() throws InvalidMoveException {
		if (gameFinished) {
			throw new InvalidMoveException("Cannot move once the game is over!");
		} else if (!currentPlayer.inCornerRoom()) {
			throw new InvalidMoveException("Current location doesn't have a secret passageway!");
		} else if (hasEnteredRoom) {  
			throw new InvalidMoveException("Already moved this turn!");
		} else if (turnFinished) {
			throw new InvalidMoveException("Cannot move after ending turn!");
		} else if (hasSuggested) {
			throw new InvalidMoveException("Cannot move after making suggestion!");
		} else if (refuteMode) {
			throw new InvalidMoveException("Cannot move while refuting!");
		} else if (hasUsedSecretPassage) {
			throw new InvalidMoveException("Already moved through a secret passage!");
		}

		//move the player
		try {
			board.useSecretPassage(currentPlayer.getCharacter());
		} catch (IllegalArgumentException e) {
			//should never happen. If it does, we crash the game with an informative message
			throw new Error("Internal game errror.\n" + 
					currentPlayer.getCharacter().getName() + 
					" should have been able to go through secret passage from " +
					currentPlayer.getPosition().toString());
		}

		//update variables
		hasUsedSecretPassage = true;
		hasEnteredRoom = true;
	}