code: protected function pruneToHighestPriorityOrInstalled(Pool $pool, array $installedMap, array $literals)
      {
          $selected = array();
  
          $priority = null;
  
          foreach ($literals as $literal) {
              $package = $pool->literalToPackage($literal);
  
              if (isset($installedMap[$package->id])) {
                  $selected[] = $literal;
                  continue;
              }
  
              if (null === $priority) {
                  $priority = $this->getPriority($pool, $package);
              }
  
              if ($this->getPriority($pool, $package) != $priority) {
                  break;
              }
  
              $selected[] = $literal;
          }
  
          return $selected;
      }
docs: Assumes that installed packages come first and then all highest priority packages