allow overriding the description, and more fine debugging.
fix seq() to avoid creating that empty matcher at first.
commit() should prevent an optional() from being omitted.