насколько я понимаю, что нужно, то вот твое решение вроде как:
заведи переменную STATUS
разбей шаблон свой на нужные тебе этапы (модули)
при вхождении алгоритма в определенный модуль, назначай status уникальное нужное значение: status=modul1
дальше , когда ты уходишь по badend, то после него сразу в switch иди
а уже в switch делай нужные исходы
switch var.status ::
case "modul1": иди в нужный экшен или модуль
и т.д.
это все катит в том случае, если я все верно понял (особо не вчитывался, поздно Оо)