code: public Traverson follow(final String rel, 
                              final Predicate<Link> predicate, 
                              final Map<String, Object> vars) {
          checkState();
          hops.add(new Hop(rel, predicate, vars, false));
          return this;
      }
docs: Follow the first {@link Link} of the current resource, selected by its link-relation type. The
  {@link LinkPredicates predicate} is used to select the matching link, if multiple links per link-relation type
  are available.
  <p>
  Templated links are expanded to URIs using the specified template variables.
  </p>
  <p>
  If the current node has {@link Embedded embedded} items with the specified {@code rel},
  these items are used instead of resolving the associated {@link Link}.
  </p>
  
  @param rel the link-relation type of the followed link
  @param predicate the predicate used to select the link to follow.
  @param vars uri-template variables used to build links.
  @return this
  @since 1.0.0