public function create($user, $repo, $title, $body = null, $assignee = null, $milestone = null, array $labels = array(),
		array $assignees = array()
	)
	{
		// Build the request path.
		$path = '/repos/' . $user . '/' . $repo . '/issues';

		// Ensure that we have a non-associative array.
		if (!empty($labels))
		{
			$labels = array_values($labels);
		}

		// Build the request data.
		$data = array(
			'title'     => $title,
			'milestone' => $milestone,
			'labels'    => $labels,
			'body'      => $body,
		);

		if (\is_string($assignee) && !empty($assignees))
		{
			throw new \UnexpectedValueException('You cannot pass both assignee and assignees. Only one may be provided.');
		}

		if (!empty($assignees))
		{
			$data['assignees'] = array_values($assignees);
		}
		elseif (\is_string($assignee))
		{
			$data['assignee'] = $assignee;
		}

		// Encode the request data.
		$data = json_encode($data);

		// Send the request.
		return $this->processResponse($this->client->post($this->fetchUrl($path), $data), 201);
	}