input: 
  from typing import List
  
  def find_shortest_path(graph: List[List[int]], start: int, end: int) -> int:
      """ Find the shortest path between two nodes in a graph using recursion. 
      The graph is represented as an adjacency list where each index in the list represents a node, 
      and the list at that index contains the nodes it is connected to.
      Return the length of the shortest path from start node to end node.
      
      >>> find_shortest_path([[1, 2], [0, 2], [0, 1, 3], [2]], 0, 3)
      3
      >>> find_shortest_path([[1, 2], [0, 2], [0, 1, 3], [2]], 1, 2)
      1
      """
  
output:     if start == end:
          return 0
      
      min_distance = float('inf')
      
      for neighbor in graph[start]:
          if neighbor != start:
              distance = find_shortest_path(graph, neighbor, end)
              if distance != -1:
                  min_distance = min(min_distance, distance + 1)
      
      return min_distance if min_distance != float('inf') else -1