code: public ImmutableList<InstanceInfo> getRoleInstancesWithMetadata(String roleName, String...metadataQueryPairs) {
          checkArgument(metadataQueryPairs.length > 0, "No metadata query pairs specified");
          checkArgument(metadataQueryPairs.length % 2 == 0, "Odd number of arguments passed as metadata query pairs");
                  
          return getRoleInstancesWithMetadata(roleName, toMap(metadataQueryPairs));
      }
docs: Retrieve information about all online instances of a particular role matching the given metadata query from
  the Conqueso Server.
  The metadata query is expressed as key/value pairs. For example, calling this method like this:
  <p>
  <code>
  conquesoClient.getRoleInstancesWithMetadata("reporting-service", "availability-zone", "us-east-1c",
  "instance-type", "m1.small");
  </code>
  </p>
  will return all instances of role reporting-service with metadata that matches availability-zone=us-east-1c and
  instance-type=m1.small.
  
  @param roleName the role to retrieve
  @param metadataQueryPairs the key/value pairs representing a query for instances matching the metadata
  @return the information about the matching instances
  @throws ConquesoCommunicationException if there's an error communicating with the Conqueso Server.