public function edit($user, $repo, $milestoneId, $title = null, $state = null, $description = null, $dueOn = null)
	{
		// Build the request path.
		$path = '/repos/' . $user . '/' . $repo . '/milestones/' . (int) $milestoneId;

		// Build the request data.
		$data = array();

		if ($title !== null)
		{
			$data['title'] = $title;
		}

		if ($state !== null)
		{
			$data['state'] = $state;
		}

		if ($description !== null)
		{
			$data['description'] = $description;
		}

		if ($dueOn !== null)
		{
			$data['due_on'] = $dueOn;
		}

		$data = json_encode($data);

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