root:
             product   file:plan.py
             product   step:./plan.py

file:plan.py
               state = CONFIRMED
             creator   root:
                sink   step:./plan.py

step:./plan.py
               state = SUCCEEDED
                need = PLAN
           using_env = STEPUP_PATH_FILTER [dynamic]
             creator   root:
              source   file:plan.py
             product   file:a/plan.py
             product   file:b/plan.py
             product   step:./plan.py  # wd=a
             product   step:./plan.py  # wd=b

file:a/plan.py
               state = CONFIRMED
             creator   step:./plan.py
                sink   step:./plan.py  # wd=a

file:b/plan.py
               state = CONFIRMED
             creator   step:./plan.py
                sink   step:./plan.py  # wd=b

step:./plan.py  # wd=a
               state = SUCCEEDED
                need = PLAN
           using_env = STEPUP_PATH_FILTER [dynamic]
             creator   step:./plan.py
              source   file:a/plan.py
             product   file:a/hop1.txt
             product   step:cp hop1.txt hop2.txt  # wd=a

step:./plan.py  # wd=b
               state = SUCCEEDED
                need = PLAN
           using_env = STEPUP_PATH_FILTER [dynamic]
             creator   step:./plan.py
              source   file:b/plan.py
             product   step:cp ../a/hop2.txt done.txt  # wd=b

file:a/hop1.txt
               state = CONFIRMED
             creator   step:./plan.py  # wd=a
                sink   step:cp hop1.txt hop2.txt  # wd=a

step:cp hop1.txt hop2.txt  # wd=a
               state = SUCCEEDED
                need = DEFAULT (implied by sinks > OPTIONAL)
             creator   step:./plan.py  # wd=a
              source   file:a/hop1.txt
             product   file:a/hop2.txt
                sink   file:a/hop2.txt

file:a/hop2.txt
               state = BUILT
             creator   step:cp hop1.txt hop2.txt  # wd=a
              source   step:cp hop1.txt hop2.txt  # wd=a
                sink   step:cp ../a/hop2.txt done.txt  # wd=b

step:cp ../a/hop2.txt done.txt  # wd=b
               state = SUCCEEDED
                need = DEFAULT
             creator   step:./plan.py  # wd=b
              source   file:a/hop2.txt
             product   file:b/done.txt
                sink   file:b/done.txt

file:b/done.txt
               state = BUILT
             creator   step:cp ../a/hop2.txt done.txt  # wd=b
              source   step:cp ../a/hop2.txt done.txt  # wd=b
