code: @Override
      public SimplePath[] findPaths(KamNode source, KamNode target) {
          if (source == null) {
              throw new InvalidArgument("Source kam node cannot be null.");
          }
  
          if (target == null) {
              throw new InvalidArgument("Target kam node cannot be null.");
          }
  
          if (!kam.contains(source)) {
              throw new InvalidArgument("Source does not exist in KAM.");
          }
  
          if (!kam.contains(target)) {
              throw new InvalidArgument("Target does not exist in KAM.");
          }
  
          final Set<KamNode> targets = sizedHashSet(1);
          targets.add(target);
  
          List<SimplePath> pathsFound = runDepthFirstSearch(kam, source, targets);
          return pathsFound.toArray(new SimplePath[pathsFound.size()]);
      }
docs: {@inheritDoc}