<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def cypher(self, query, params=None):
 """ Execute a cypher query with the param 'self' pre-populated with the nodes neo4j id. :param query: cypher query string :type: string :param params: query parameters :type: dict :return: list containing query results :rtype: list """

        self._pre_action_check('cypher')
        params = params or {}
        params.update({'self': self.id})
        return db.cypher_query(query, params)