You can find info about this at ORACLE_HOME/rdbms/admin/dbmspool.sql.

rem
rem $Header: dbmspool.sql 15-jun-99.08:54:18 mjungerm Exp $
rem
Rem Copyright (c) 1991, 1996, 1997, 1998, 1999 by Oracle Corporation
Rem NAME
Rem dbmspool.sql - dbms_shared_pool utility package.
Rem DESCRIPTION
Rem This package allows you to display the sizes of objects in the
Rem shared pool, and mark them for keeping or unkeeping in order to
Rem reduce memory fragmentation.

Here are some of the packages Oracle recommends you pin in the shared pool:

execute dbms_shared_pool.keep('STANDARD');
execute dbms_shared_pool.keep('DBMS_STANDARD');
execute dbms_shared_pool.keep('DBMS_UTILITY');
execute dbms_shared_pool.keep('DBMS_DESCRIBE');
execute dbms_shared_pool.keep('DBMS_OUTPUT');
execute dbms_shared_pool.keep('DBMS_PIPE');
execute dbms_shared_pool.keep('DBMS_SESSION');