def next_previous(self, photo, options=None, **kwds):
        """
        Endpoint: /photo/<id>/nextprevious[/<options>].json

        Returns a dict containing the next and previous photo lists
        (there may be more than one next/previous photo returned).
        The options parameter can be used to narrow down the photos
        Eg: options={"album": <album_id>}
        """
        option_string = self._build_option_string(options)
        result = self._client.get("/photo/%s/nextprevious%s.json" %
                                  (self._extract_id(photo), option_string),
                                  **kwds)["result"]
        value = {}
        if "next" in result:
            # Workaround for APIv1
            if not isinstance(result["next"], list): # pragma: no cover
                result["next"] = [result["next"]]

            value["next"] = []
            for photo in result["next"]:
                value["next"].append(Photo(self._client, photo))

        if "previous" in result:
            # Workaround for APIv1
            if not isinstance(result["previous"], list): # pragma: no cover
                result["previous"] = [result["previous"]]

            value["previous"] = []
            for photo in result["previous"]:
                value["previous"].append(Photo(self._client, photo))

        return value
Endpoint: /photo/<id>/nextprevious[/<options>].json

        Returns a dict containing the next and previous photo lists
        (there may be more than one next/previous photo returned).
        The options parameter can be used to narrow down the photos
        Eg: options={"album": <album_id>}