Repeat a stage.

        :param index: Stage index.
        :param stage: Stage object to repeat.
        :param iterations: Number of iterations (default infinite).
        :param stages: Stages back to repeat (default 1).

def _repeat(self, index, stage, stop):
        """ Repeat a stage.

        :param index: Stage index.
        :param stage: Stage object to repeat.
        :param iterations: Number of iterations (default infinite).
        :param stages: Stages back to repeat (default 1).
        """
        times = None
        if 'iterations' in stage.kwargs:
            times = stage.kwargs['iterations'] - 1
        stages_back = 1
        if 'stages' in stage.kwargs:
            stages_back = stage.kwargs['stages']
        i = 0
        while i != times:
            if stop.is_set():
                break
            for forward in range(stages_back):
                if stop.is_set():
                    break
                stage_index = index - stages_back + forward
                self._execute_stage(stage_index, self._pipe[stage_index], stop)
            i += 1