'Add a new command line argument.
:param topics: str or [str] help topic(s) this should be listed under,
or None for "always documented". The first entry
determines where the flag lives in the "--help all"
output (None -> "optional arguments").
:param list *args: the names of this argument flag
:param dict **kwargs: various argparse settings for this argument'

def add(self, topics, *args, **kwargs):

    if isinstance(topics, list):
        topic = (self.help_arg if (self.help_arg in topics) else topics[0])
    else:
        topic = topics
    if self.detect_defaults:
        kwargs = self.modify_kwargs_for_default_detection(**kwargs)
    if self.visible_topics[topic]:
        if (topic in self.groups):
            group = self.groups[topic]
            group.add_argument(*args, **kwargs)
        else:
            self.parser.add_argument(*args, **kwargs)
    else:
        kwargs['help'] = argparse.SUPPRESS
        self.parser.add_argument(*args, **kwargs)
