Changed visitor to allow strict or non-strict matching.
Added some more useful documentation.