Let you write plugins. You pass in a function with five arguments, like this:
Snap.plugin(function (Snap, Element, Paper, global, Fragment) {
Snap.newmethod = function () {};
Element.prototype.newmethod = function () {};
Paper.prototype.newmethod = function () {};
});
Inside the function you have access to all main objects (and their prototypes). This allow you to extend anything you want.