input: Write a function to separate a list of numbers into prime numbers, composite numbers, and a combined list of odd and even numbers.
  assert separate_list([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) == ([1, 2, 3, 5, 7], [4, 6, 8, 9, 10], [2, 3, 4, 5, 6, 7, 8, 9, 10])
  assert separate_list([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]) == ([11, 13, 17, 19], [12, 14, 15, 16, 18, 20], [12, 13, 14, 15, 16, 17, 18, 19, 20])
  assert separate_list([21, 22, 23, 24, 25, 26, 27, 28, 29, 30]) == ([23, 29], [21, 22, 24, 25, 26, 27, 28, 30], [21, 22, 23, 24, 25, 26, 27, 28, 29, 30])
output: def separate_list(numbers):
      def is_prime(n):
          if n <= 1:
              return False
          if n == 2:
              return True
          if n % 2 == 0:
              return False
          for i in range(3, int(n**0.5) + 1, 2):
              if n % i == 0:
                  return False
          return True
      
      primes = []
      composites = []
      odd_even = []
  
      for number in numbers:
          if is_prime(number):
              primes.append(number)
          elif number > 1:
              composites.append(number)
          
          if number % 2 == 0 or number % 2 != 0:
              odd_even.append(number)
  
      return primes, composites, odd_even