Ummmm, all of that IS what the FPI language was created for.
FPI is, by pure definition, a "conditional" language.
When you say "Branch", I say "State".
Look:
:state=0,plrhaskey=1:<Open Door>,state=2
:state=0,plrhaskey=0:<Tell Plr to **** Off>,state=1
There, you have two branches. If the player came to the door with a key, it opens and goes to state 2, if the player came to door and DIDN'T have a key, the player won't get through and it goes to state 1.
No mod needed. What you seek is, in essence, exactly what you have.
The one and only,
Whosoever says, "Don't sweat the small stuff," is obviously not a programmer.