(gh-568) Allow snapshot option to be optional
(gh-568) Throw descriptive exception when no snapshot exists
(gh-568) Allow snapshot option to be optional