def METHOD_NAME(self, name: Text, conditions: Optional[Dict[Text, Any]]) -> None:
    """Add a checkpoint to story steps."""
    # Depending on the state of the story part this
    # is either a start or an end check point
    if not self.current_steps:
        self.start_checkpoints.append(Checkpoint(name, conditions))
    else:
        if conditions:
            rasa.shared.utils.io.raise_warning(
                f"End or intermediate checkpoints "
                f"do not support conditions! "
                f"(checkpoint: {name})",
                docs=DOCS_URL_STORIES + "#checkpoints",
            )
        additional_steps = []
        for t in self.current_steps:
            if t.end_checkpoints:
                tcp = t.create_copy(use_new_id=True)
                tcp.end_checkpoints = [Checkpoint(name)]
                additional_steps.append(tcp)
            else:
                t.end_checkpoints = [Checkpoint(name)]
        self.current_steps.extend(additional_steps)