Introduce binding phase for optionals

o New phase runs straight after matching
o Added Pipe.sources (helps with taking apart plans)