code: public Traverson followLink(final String rel, 
                                  final Predicate<Link> predicate, 
                                  final Map<String, Object> vars) {
          checkState();
          hops.add(new Hop(rel, predicate, vars, true));
          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 are available for the
  specified link-relation type.
  <p>
  Templated links are expanded to URIs using the specified template variables.
  </p>
  <p>
  Other than {@link #follow(String, Predicate, Map)}, this method will ignore possibly embedded resources
  with the same link-relation type. Only if the link is missing, the embedded resource is
  used.
  </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 2.0.0