Added memoizeJSON method with optional expireAt parameter