def METHOD_NAME(
    flow_definition_path: str, extra_context: Optional[Dict] = None
) -> Tuple[Dict[str, Question], str]:
    previous_question: Optional[Question] = None
    first_question_key: str = ""
    questions: Dict[str, Question] = {}
    questions_definition = InteractiveFlowCreator._parse_questions_definition(flow_definition_path, extra_context)
    try:
        for question in questions_definition.get("questions", []):
            q = QuestionFactory.create_question_from_json(question)
            if not first_question_key:
                first_question_key = q.key
            elif previous_question and not previous_question.default_next_question_key:
                previous_question.set_default_next_question_key(q.key)
            questions[q.key] = q
            previous_question = q
        return questions, first_question_key
    except (KeyError, ValueError, AttributeError, TypeError) as ex:
        raise QuestionsFailedParsingException(f"Failed to parse questions: {str(ex)}") from ex