title: Perl 6 multi methods never match expected signature
body: <p>I have a class with two multi methods (<code>multi submit</code>). </p>
  
  <p>I call my multi like this:</p>
  
  <pre><code>$perspective.submit(:message($message.content));
  </code></pre>
  
  <p>Which gets shipped off to my class:</p>
  
  <pre><code>my $perspective-api = API::Perspective.new(:api-key(%*ENV&lt;PERSPECTIVE_API_KEY&gt;));
  
  proto method submit (|) {*}
  
  multi method submit(Str :$message!, MODEL :@models = TOXICITY) {
      my $score = $perspective-api.analyze(:@models, :comment($message));
      say @models Z=&gt; $score&lt;attributeScores&gt;{@models}.map: *&lt;summaryScore&gt;&lt;value&gt;;
  
  multi method submit(Str :$name!, MODEL :@models = TOXICITY) {
      my $score = $perspective-api.analyze(:@models, :comment($name));
      say @models Z=&gt; $score&lt;attributeScores&gt;{@models}.map: *&lt;summaryScore&gt;&lt;value&gt;;
  }
  </code></pre>
  
  <p>However I always get the following response:</p>
  
  <pre><code>Died because of the exception:
      Cannot resolve caller AUTOGEN(Rose::ContentAnalysis::Perspective:D: :message(Str)); none of these signatures match:
          (Rose::ContentAnalysis::Perspective: Str :$message!, MODEL :@models = MODEL::TOXICITY, *%_)
          (Rose::ContentAnalysis::Perspective: Str :$name!, MODEL :@models = MODEL::TOXICITY, *%_)
  </code></pre>
  
  <p>Despite my named argument (<code>:message</code>) being a <code>Str</code> as required and <code>@models</code> having a default declared.</p>