Hi again,
Think I figured it out using these two posts:
Link together hasValue and hasValue !=true
d2:hasValue(#{stage1.xxxUID}) && d2:hasValue(#{stage2.xxxUID}) != true etc etc
where the DE is a compulsory DE in each stage.
Please let me know if you see anything wrong with this approach!