For search tree creation, the OccursOnPath check serves the same purpose, so a vertex's open/closed status can be eliminated:
Search(s,adder)
open[s] = false
d[s] = 0
pred[s] = null
DEQ = {s}
while DEQ ≠ {} do
u = Remove[DEQ]
for each v ∈ Expand(u) do
if open[v] = true
then open[v] = false
Add(DEQ,v,adder)