Don't require braces around the to and from clauses.
rejigger to avoid circular dependency
Relax some grammar rules.

Apparently commas between IPs are optional, as are parts of the
phase1 and 2 directives.
Don't require an ordering on directives.
bugfixes and tests