docs: def pick(choices, default=None, str_choices=None, prompt=None, allow_mult=False, more_choices=False):
      '''
      :param choices: Strings between which the user will make a choice
      :type choices: list of strings
      :param default: Number the index to be used as the default
      :type default: int or None
      :param str_choices: Strings to be used as aliases for the choices; must be of the same length as choices and each string must be unique
      :type str_choices: list of strings
      :param prompt: A custom prompt to be used
      :type prompt: string
      :param allow_mult: Whether "*" is a valid option to select all choices
      :type allow_mult: boolean
      :param more_choices: Whether "m" is a valid option to ask for more options
      :type more_choices: boolean
      :returns: The user's choice, i.e. one of a numbered index of choices (e.g. 0 for the first item), "*" (only if allow_mult is True), or "m" (only if more_results is True)
      :rtype: int or string
      :raises: :exc:`EOFError` to signify quitting the process
  
      At most one of allow_mult and more_choices should be set to True.
      '''
      for i in range(len(choices)):
          prefix = str(i) + ') '
          lines = choices[i].split("\n")
          joiner = "\n" + " " * len(prefix)
          print(prefix + joiner.join(lines))
      if more_choices:
          print('m) More options not shown...')
      print('')
      if prompt is None:
          prompt = 'Pick a numbered choice'
          if allow_mult:
              prompt += ' or "*" for all'
          elif more_choices:
              prompt += ' or "m" for more options'
          if default is not None:
              prompt += ' [' + str(default) + ']'
          prompt += ': '
      while True:
          try:
              value = input(prompt)
          except KeyboardInterrupt:
              print('')
              raise
          except EOFError:
              print('')
              raise
          if default is not None and value == '':
              return default
          if allow_mult and value == '*':
              return value
          if more_choices and value == 'm':
              return value
          try:
              choice = str_choices.index(value)
              return choice
          except:
              pass
          try:
              choice = int(value)
              if choice not in range(len(choices)):
                  raise IndexError()
              return choice
          except Exception:
              print('Not a valid selection')