We describe a new algorithm for finding substructures within dark matter haloes from N-body simulations. The algorithm relies upon the fact that dynamically distinct substructures in a halo will have a local velocity distribution that differs significantly from the mean, i.e. smooth background halo. We characterize the large-scale mean field using a coarsely grained cell-based approach, while a kernel-smoothing process is used to determined the local velocity distribution. Comparing the ratio of these two estimates allows us to identify particles that are strongly clustered in velocity space relative to the background and thus resident in a substructure. From this population of outliers, groups are identified using a Friends-of-Friends-like approach. False positives are rejected using Poisson noise arguments. This approach does not require a search of the full phase-space structure of a halo, a non-trivial task, and is thus computationally advantageous. We apply our algorithm to several test cases and show that it identifies not only subhaloes, bound overdensities in phase space, but can recover tidal streams with a high purity. Our method can even find streams which do not appear significantly overdense either physically or in phase space.