…nit tests for pipeline
… conflict with QUnit, which pollutes the global namespace with a function named module
Some promises, particularly Q promises, provide a valueOf method that attempts to synchronously return the fulfilled value of the promise, or returns the unresolved promise itself. Attempting to break a fulfillment value out of a promise appears to be necessary to break cycles between Q and When attempting to coerce each-other's promises in an infinite loop. For promises that do not implement "valueOf", the Object#valueOf is harmless. See: kriskowal/q#106
…nd progress returns undefined when already resolved.