title: Commander.js collect multiple options always include default
body: <p>I'm using <a href="https://github.com/tj/commander.js/" rel="nofollow noreferrer">commander.js</a> to parse the command line args and I'm trying to collect an optional param that can appear multiple times and it always returns the options I set plus the default one.</p>
  <pre class="lang-js prettyprint-override"><code>function collect (val, memo) {
      memo.push(val);
      return memo;
  }
  
  program
      .command('run &lt;param&gt;')
      .action(function run(param, options) {
          console.log(param);
          console.log(options.parent.config);
      });
  
  program
      .option('-c, --config &lt;path&gt;', 'Config', collect, [&quot;/path/to/default&quot;])
      .parse(process.argv);
  </code></pre>
  <p>When I call the script like this:</p>
  <pre class="lang-sh prettyprint-override"><code>index.js run some -c &quot;/some/path&quot; -c &quot;/other/path&quot;
  </code></pre>
  <p>It  prints:</p>
  <pre><code>[ '/path/to/default', '/some/path', '/other/path' ]
  </code></pre>
  <p>But it should only print:</p>
  <pre><code>['/some/path', '/other/path' ]`
  </code></pre>
  <p>When I call it without the <code>-c</code> param it works correctly, printing the array with the default value. How can I fix this?</p>