private boolean isNotSeparatorRoom(Room separatorRoom, Room joinerRoom) {
    if (separatorRoom == null) return false;

    if (separatorRoom.isRotatable() && separatorRoom != joinerRoom) {
      separatorRoom.rotateRightRotatedType();
      rotationMap.put(
          separatorRoom.getDistance() - Math.abs(separatorRoom.getRotation()), separatorRoom);
      return false;
    }

    if (separatorRoom.isRotatable()
        && separatorRoom == joinerRoom
        && separatorRoom.getExit() != null) {
      if (separatorRoom.getRotatedType() == RoomType.TYPE_7) {
        separatorRoom.rotateRightRotatedType();
      } else if (separatorRoom.getRotatedType() == RoomType.TYPE_8
          && separatorRoom.getEntrance() == Direction.LEFT) {
        separatorRoom.rotateLeftRotatedType();
      } else if (separatorRoom.getRotatedType() == RoomType.TYPE_8
          && separatorRoom.getEntrance() == Direction.RIGHT) {
        separatorRoom.rotateRightRotatedType();
      } else if (separatorRoom.getRotatedType() == RoomType.TYPE_9
          && separatorRoom.getEntrance() == Direction.TOP) {
        separatorRoom.rotateLeftRotatedType();
      } else if (separatorRoom.getRotatedType() == RoomType.TYPE_9
          && separatorRoom.getEntrance() == Direction.LEFT) {
        separatorRoom.rotateRightRotatedType();
      }
      rotationMap.put(
          separatorRoom.getDistance() - Math.abs(separatorRoom.getRotation()), separatorRoom);
      return false;
    }

    return true;
  }