title: Select2 with createSearchChoice uses newly created choice for keyboard entry even given a match, bug or am I missing something?
body: <p>I'm using Select2 (version 3.4.0) to populate a tag list. The tags are matched against existing ones via ajax call, and I'm using <code>createSearchChoice</code> to allow creating new tags. The code works so far, and looks something like this:</p>
  
  <pre><code>$(mytags).select2({
      multiple: true,
      placeholder: "Please enter tags",
      tokenSeparators: [ "," ],
      ajax: {
          multiple: true,
          url: myurl,
          dataType: "json",
          data: function(term, page) {
              return {
                  q: term
              };
          },
          results: function(data, page) {
              return data;
          }
      },
      createSearchChoice: function(term) {
          return {
              id: term,
              text: term + ' (new)'
          };
      },
  });
  </code></pre>
  
  <p>All pretty standard, except note the appended <code>(new)</code> in <code>createSearchChoice</code>. I need users to know that this is not a preexisting tag.</p>
  
  <p>It works as expected: if I start typing "new-tag", I get "new-tag (new)" tag suggested at the top of the list, and if I pick it, the tag list contains "new-tag (new)", as expected. If the tag already exists, Select2 detects the match, and no "(new)" choice is created. Pressing return or clicking on the match works as expected.</p>
  
  <p>The problem appears when I type a comma (my single <code>tokenSeparators</code> entry) while there is a match. Select2 closes that token, and adds the tag to the list, but with the "(new)" label appended, i.e. it uses the return value from <code>createSeachChoice</code> even if it does not have to.</p>
  
  <p>Is this a bug in Select2, or am I using it wrong (and what should I do instead)?</p>