If you find any bugs in this library, please submit an issue here on GitHub and I'll try to fix it ASAP. If you want to fix it yourself, go ahead and submit a pull request in addition to the issue. I will be very grateful.
If you have a feature that you'd like added to this library, submit an issue here on GitHub. We can talk about feasibility, whether it fits in with the rest of the library, etc. If you'd like to try implementing the feature yourself after we decide that it is a good addition, let me know and then feel free to submit a pull request! I also don't have anything against drive-by pull requests, but it's probably best to check via an issue first to make sure that it's a good idea and that no one else is working on it before you put in the time.
After submitting an issue for your bug / feature request, if you want to make a pull request, go ahead! The code should be fairly well-documented, and if it's not well-documented and you find it very confusing, let me know and I'll try to improve the documentation. Adding tests for your changes is preferred when practical, and any new functions or features should be documented. When modifying the current code, you'll notice that most of the searches use the same generalizedSearch function at their core. Feel free to not do this with your submitted code--I would rather have more algorithms, implemented separately and with code duplication, than to have less algorithms and "more elegant" code.