title: Share dest between positional arguments and options
body: <p>I have this very simple <code>ArgumentParser</code> instance, with an optional positional argument and an option, which writes a constant to the same destination:</p>
  
  <pre><code>import argparse
  
  parser = argparse.ArgumentParser()
  parser.add_argument('-a', action='store_const', dest='path', const='&lt;all&gt;')
  parser.add_argument('path', nargs='?')
  
  # Prints None instead of '&lt;all&gt;'
  print(parser.parse_args(['-a']).path)
  </code></pre>
  
  <p>But no matter what, parsing the command line <code>['-a']</code> does not yield a <code>Namespace</code> instance with <code>path</code> set to that constant. Instead, the default from the positional argument is used.</p>
  
  <p>What am I doing wrong?</p>
  
  <p>My use case is that the user should be able to specify a path (actually a list of paths). This list of paths defaults to the current working directory. But instead of using that default, <code>-a</code> can be passed, which should result in some configured root directory to be used. The full code for this part of the argument parser is this:</p>
  
  <pre><code>all_sentinel = object()
  
  parser = argparse.ArgumentParser()
  paths_group = parser.add_mutually_exclusive_group()
  paths_group.add_argument('-a', action='store_const', dest='paths', const=all_sentinel)
  paths_group.add_argument('paths', nargs='*', default=['.'])
  </code></pre>