I would first create a data structure with the possible events:
<<set setup.events to {
generic : [
"always available events",
"help an old lady",
"found some junk"
],
level : {
oneToFour : [
"attacked by a bear",
"pick-pocketed",
"found some gold"
],
overFour : [
"etc..."
]
},
other : {
...
}
}>>
After that, I'd then test for events in PassageReady (or similar), so that the list of potential events is always available.
<<set _events to clone(setup.events.generic)>>
<<if $level lte 4>>
<<set _events to _events.concat(setup.events.level.oneToFour)>>
<<else>>
<<set _events to _events.concat(setup.events.level.overFour)>>
<</if>>
<<if $someOtherCondition>>
<<set _events to _events.concat(setup.events.other.whatever)>>
<</if>>
This way, you can write up all the event control code one time, and adding new events later is as simple as updating the setup.events object.
Since the events are rolled every passage thanks to PassageReady, all you need to do to select one is fetch it from the array:
<<set _randomEvent to _events.pluck()>>
You don't have to use something exactly like this, but think about the problem this way: instead of building a system that relies on you keeping track of everything, build infrastructure you can use to build the thing you want.