docs: def are_related(env, source, target, relationships):
      """
      Returns ``True`` if ``source`` and ``target`` items are related
      according a list, ``relationships``, of relationship types.
      ``False`` is returned otherwise
  
      If the list of relationship types is empty, all available
      relationship types are to be considered.
  
      """
      if not relationships:
          relationships = list(env.relationships.keys())
  
      for rel in relationships:
          if (target in env.traceability_all_items[source][rel] or
              source in
                  env.traceability_all_items[target][env.relationships[rel]]):
              return True
  
      return False