anchor.diff:    . `...as('b')`: only the end of the traversal has a declared variable.
     . `...`: there are no declared variables.
   
  -If a variable is at the start of a traversal pattern it *must* exist as a label in the path history of the traverser else the traverser can not go down that path. If a variable is at the end of a traversal pattern then if the variable exists in the path history of the traverser, the traverser's current location must match (i.e. equal) its historic location at that same label. However, if the variable does not exist in the path history of the traverser, then the current location is labeled as the variable and thus, becomes a bound variable for subsequent traversal patterns. If a traversal pattern does not have an end label, then the traverser must simply "survive" the pattern to continue to the next pattern. If a traversal pattern does not have a start label, then the traverser can go down that path at any point, but will only go down that pattern once as a traversal pattern is executed once and only once for the history of the traverser. Typically, traversal patterns that do not have a start label are used in conjunction with `and()`, `or()`, and `where()`. Once the traverser has "survived" (i.e. not filtered) all the patterns (or at least one for `or()`), `match()`-step analyzes the traversers path history and emits a `Map<String,Object>` of the variable bindings to the next step in the traversal.
  +If a variable is at the start of a traversal pattern it *must* exist as a label in the path history of the traverser else the traverser can not go down that path. If a variable is at the end of a traversal pattern then if the variable exists in the path history of the traverser, the traverser's current location *must* match (i.e. equal) its historic location at that same label. However, if the variable does not exist in the path history of the traverser, then the current location is labeled as the variable and thus, becomes a bound variable for subsequent traversal patterns. If a traversal pattern does not have an end label, then the traverser must simply "survive" the pattern (i.e. not be filtered) to continue to the next pattern. If a traversal pattern does not have a start label, then the traverser can go down that path at any point, but will only go down that pattern once as a traversal pattern is executed once and only once for the history of the traverser. Typically, traversal patterns that do not have a start and end label are used in conjunction with `and()`, `or()`, and `where()`. Once the traverser has "survived" all the patterns (or at least one for `or()`), `match()`-step analyzes the traverser's path history and emits a `Map<String,Object>` of the variable bindings to the next step in the traversal.
   
   [gremlin-groovy,modern]
   ----
  
positive.code: 
  <1> *Patterns of arbitrary complexity*: `match()` is not restricted to triple patterns or property paths.
  <2> *Recursion support*: `match()` supports the branch-based steps within a pattern, including `repeat()`.
  <3> *Imperative/declarative hybrid*: Pre and prior to a `match()`, it is possible to leverage classic Gremlin traversals.
  
  To extend point #3, it is possible to support going from imperative, to declarative, to imperative, ad infinitum.
  
  
negative.code: Using Where with Match
  ^^^^^^^^^^^^^^^^^^^^^^
  
  Match is typically used in conjunction with both `select()` (demonstrated previously) and `where()` (presented here). A `where()`-step allows the user to further constrain the result set provided by `match()`.
  
  [gremlin-groovy,modern]
  ----
  